﻿// ===============================================================================
//  Copyright © NewSQL.CN. All rights reserved .
//  技术论坛：http://newsql.cn/
//  个人博客：http://www.ymind.net/
//  版权所有：NewSQL中文社区 彦铭工作室
// ===============================================================================

using System;
using MongoDB.Bson;

namespace Newsql.Data.MongoDB
{
	/// <summary>
	/// 为 MongoDB 实体对象提供基类。无法创建此类的实例。
	/// </summary>
	[Serializable]
	public abstract class BsonInt32Object : MongoDBObject<BsonInt32>
	{
		/// <summary>
		/// 初始化 <see cref="BsonInt32Object"/> 实体对象。
		/// </summary>
		protected BsonInt32Object() : this(default(BsonInt32)) { }

		/// <summary>
		/// 初始化 <see cref="BsonInt32Object"/> 实体对象。
		/// </summary>
		/// <param name="id">实体对象的唯一标识符。</param>
		protected BsonInt32Object(BsonInt32 id) : base(id)
		{
			if (id == null) throw new ArgumentNullException("id");
			if (id.Value < 0) throw new ArgumentOutOfRangeException("id");
		}
	}
}
